// import com.alibaba.druid.sql.ast.SQLReplaceable;
// import com.alibaba.druid.sql.visitor.SQLASTVisitor;
#pragma once

#include <string>
#include <list>

#include "../SQLExpr.h"
#include "../SQLExprImpl.h"
#include "../Object.h"
#include "../SQLReplaceable.h"

#include "SQLConstraintImpl.h"
#include "SQLColumnConstraint.h"

class SQLASTVisitor;

class SQLColumnUniqueKey 
: virtual public SQLConstraintImpl, 
virtual public SQLColumnConstraint, 
virtual public SQLReplaceable
{
public:
  SQLColumnUniqueKey();
  SHAREDOBJECT(SQLColumnUniqueKey);

  void accept0(SQLASTVisitor_ptr visitor) override;

  // SQLColumnUniqueKey *clone();
  virtual SQLObject_ptr clone();
  void simplify() {}

  virtual bool containsAttribute(string_ptr name){};
  virtual void output(string_ptr buf){};
  virtual void addBeforeComment(string_list_ptr comments){};
  virtual string_list_ptr getBeforeCommentsDirect(){};
  virtual void addAfterComment(string_ptr  comment){};
  virtual void addAfterComment(string_list_ptr comments){};
  virtual string_list_ptr getAfterCommentsDirect(){};
  virtual bool hasBeforeComment(){};
  virtual bool hasAfterComment(){};
};
